/**
 * 
 */
package sismed.negocio.controle.mbean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.component.UIData;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import sismed.dados.hibernate.dao.DAOHibernatePessoa;
import sismed.dados.hibernate.dao.DAOHibernateSumarioAlta;
import sismed.dao.IDAOPessoa;
import sismed.dao.IDAOSumarioAlta;
import sismed.negocio.modelo.Paciente;
import sismed.negocio.modelo.SumarioAlta;

/**
 * @author Berg
 *
 */
public class MBeanAlta {

		private IDAOSumarioAlta daoalta = new DAOHibernateSumarioAlta();
		private IDAOPessoa daopessoa = new DAOHibernatePessoa();
		private SumarioAlta alta = new SumarioAlta();
		private Paciente paciente = new Paciente();
		private List<Paciente> lista = new ArrayList<Paciente>();
		private UIData objDataTablePacienteData;
		
		public String cadastrar(){
			
			alta.getPaciente().setInternado(false);
			if (daoalta.cadastrar(alta)){
				paciente = daopessoa.recuperarPaciente(alta.getPaciente().getId());
				paciente.setInternado(false);
				daopessoa.editar(paciente);
				return "success";
			}else
				return "failure";
		}
		
		
		public String EmitirAlta(){
			this.alta.setPaciente((Paciente) objDataTablePacienteData.getRowData());
			
			HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
			/*if(session.getAttribute("tipoUsuario")!=null)
				return "semPermissao";*/
			if(session.getAttribute("tipoUsuario").equals("Medico")){
				System.out.println("sem sessao!");
				this.alta.setMedico(this.daopessoa.recuperarMedico(Integer.parseInt(session.getAttribute("id").toString())));
			}else return "semPermissao";/**/
			//this.alta.setMedico(this.daopessoa.recuperarMedico(4));
			return "emitirAlta";
		}

		/**
		 * @param paciente the paciente to set
		 */
		public void setPaciente(Paciente paciente) {
			this.paciente = paciente;
		}

		/**
		 * @return the paciente
		 */
		public Paciente getPaciente() {
			return paciente;
		}

		/**
		 * @return the alta
		 */
		public SumarioAlta getAlta() {
			return alta;
		}

		/**
		 * @param alta the alta to set
		 */
		public void setAlta(SumarioAlta alta) {
			this.alta = alta;
		}

		/**
		 * @param lista the lista to set
		 */
		public void setLista(List<Paciente> lista) {
			this.lista = lista;
		}

		/**
		 * @return the lista
		 */
		public List<Paciente> getLista() {
			this.lista = daopessoa.recuperarListaPacientesInternados();
			for (Paciente p : lista) {
				System.out.println("pessoa: "+p.getNome());
			}
			return lista;
		}

		/**
		 * @return the objDataTablePacienteData
		 */
		public UIData getObjDataTablePacienteData() {
			return objDataTablePacienteData;
		}

		/**
		 * @param objDataTablePacienteData the objDataTablePacienteData to set
		 */
		public void setObjDataTablePacienteData(UIData objDataTablePacienteData) {
			this.objDataTablePacienteData = objDataTablePacienteData;
		}
}
